package com.zh.note.demo.javaSE;

import java.util.Arrays;
import java.util.Comparator;
import java.util.function.ToIntFunction;

/**
 * Comparator 排序相关
 */
public class ComparatorDemo {
    public static void main(String[] args) {

        int[] nums = {1, 3, 5, 6, 8, 7, 0, 9, 2};

        Integer[] array = Arrays.stream(nums).boxed().toArray(value -> new Integer[value]);

        int[][] arrs = {{1, 3, 2}, {5, 9, 6}, {8, 4, 7}};

        // // 默认升序
        // Arrays.sort(nums);
        // // 降序排列
        // Arrays.sort(array, (o1, o2) -> {
        //     return o2 - o1;
        // });
        // Arrays.sort(nums, 2, 5);
        //
        // // 降序排列
        // Arrays.sort(array, Comparator.reverseOrder());
        // // 自然排序 ，升序排列
        // Arrays.sort(array, Comparator.naturalOrder());
        //
        // 二维数组第二个元素升序排序

        Arrays.sort(arrs, Comparator.comparingInt(new ToIntFunction<int[]>() {
            @Override
            public int applyAsInt(int[] a) {
                return a[1];
            }
        }));
        Arrays.sort(arrs, new Comparator<int[]>() {
            @Override
            public int compare(int[] o1, int[] o2) {
                return o1[1] - o2[1];
            }
        });
        //
        // System.out.println(Arrays.toString(array));

        // 打印二维数组
        Arrays.stream(arrs).forEach(item -> {
            System.out.println(Arrays.toString(item));
        });
    }

}
